<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // console.log(a);
  // var a = 10;
  // console.log(a);
  // 不存在声明提升
  // console.log(a);
  // let a = 10;
  // console.log(a);

  // var b = 20;
  // var b = 30;
  // console.log(b);
  // 不允许重复声明变量
  // let b = 20;
  // let b = 30;
  // console.log(b);

  // var c = 40;
  // console.log(window.c);
  // console.log(c);
  // 全局变量不会绑定到window
  // let c = 40;
  // console.log(window.c);
  // console.log(c);

  // if(true){
  //   var d = "hello";
  // }
  // console.log(d);
  // 存在块级作用域：只要是个花括号，就是作用域
  // if(true){
  //   let d = "hello";
  // }
  // console.log(d);

  // {
  //   a = "world";
  //   var a = 10;
  //   console.log(a)
  // }
  // 存在暂时性死区
  // {
  //   var a = "world";
  //   let a = 10;
  //   a = 20;
  //   console.log(a)
  // }

  // let和var的区别


  // let具有的特点，const也有


  // let和const的区别
  // const声明的变量，不允许修改地址
    // 值传递（基本）的数据和引用传递（复杂）的数据的区别    

  // let a = 10;
  // a = 20;
  // console.log(a);

  // const b = 10;
  // b = 20;
  // console.log(b);

  // const c = {name:"admin"};
  // c.name = "root";
  // c = "hello";
  // console.log(c);

  // let d;
  // console.log(d);
  // const声明的变量需要立即赋值
  // const e;
  // console.log(e);

  
</script>
</html>